Implementing an OCL Compiler for .NET
نویسندگان
چکیده
Model-Driven Architecture standardized by OMG facilitates separating the platform-independent part (PIM) and the platform-specific part (PSM) of a system model. The platform-independent artifacts are mainly UML models created with CASE tools. Due to this separation, PIM specified by the developers can be reused across several implementation platforms of the software. PSM is ideally generated automatically from PIM via model transformation steps performed by model compilers. Beyond the topology of the visual models additional constraints must be specified, which ensure the correctness of the attributes among others. Dealing with OCL constraints provides a solution for the unsolved issues, because topological and attribute transformation methods cannot perform and express the problems that can be addressed by constraint validation. This paper discusses the need for combining UML and OCL, it introduces the compilers in general, it shows the architecture of our OCL Compiler for .NET, and it presents the lexical and syntactic analysis as well as the semantic analysis and code generation techniques in detail. The OCL Compiler has been implemented as a module of our n-layer multipurpose modeling and metamodel-based transformation system called Visual Modeling and Transformation System (VMTS). The OCL Compiler module facilitates validating (i) constraints contained by the metamodels at the time of the model instantiation process, and (ii) constraints contained by the transformation steps during the metamodel-based graph transformation. An illustrative case study is also provided, which introduces how VMTS generates source code from a statechart diagram, and how it validates specific properties using the OCL Compiler.
منابع مشابه
Implementing an OCL 2.0 Compiler for Metamodeling Environments
The Unified Modeling Language (UML) has become a standard in modeling, but it cannot express all the necessary modeling information between the model items. Object Constraint Language (OCL) is used to extend the capabilities of UML diagrams, and define constraints for the model items. The combination of UML and OCL can be used to realize vision of OMG’s Model Driven Architecture (MDA). OCL is b...
متن کاملAn MDA Framework Supporting OCL
We present an mda framework, developed in the functional programming language sml, that tries to bridge the gap between formal software development and the needs of industrial software development, e.g., code generation. Overall, our toolchain provides support for software modeling using uml/ocl and guides the user from type-checking and model transformations to code generation and formal analy...
متن کاملOptimization Algorithms For OCL Compilers
Constraint handling is one of the most focused research field in both model validation and model transformation. Constraints are often simple topological conditions such as multiplicity checks, but the main strength of the constraint validation lies in the textual constraints defined in high-level languages. Object Constraint Language (OCL) is a wide-spread formalism to express model constraint...
متن کاملTowards a Tool for Featherweight OCL: A Case Study On Semantic Reflection
We show how modern proof environments comprising code generators and re ection facilities can be used for the e ective construction of a tool for OCL. For this end, we de ne a UML/OCL meta-model in HOL, a meta-model for Isabelle/HOL in HOL, and a compiling function between them over the vocabulary of the libraries provided by Featherweight OCL. We use the code generator of Isabelle to generate ...
متن کاملOcl a Proposal for a Machine _ Checked Formal Semantics for Ocl
The Uni ed Modeling Language (UML) is one of the few modeling languages that is widely used in industry. While UML is mostly known as diagrammatic modeling language (e. g., visualizing class models), it is complemented by a textual language, called Object Constraint Language (OCL). OCL is a textual annotation language, originally based on a three-valued logic, that turns UML into a formal langu...
متن کامل